←Select platform

SetModalityLut(DicomModalityLutAttributes,int[]) Method

Summary

Sets the attributes that describe the Modality LUT.

Syntax
C#
VB
C++
Java
public void SetModalityLut( 
   DicomModalityLutAttributes attributes, 
   int[] data 
) 
Public Overloads Sub SetModalityLut( _ 
   ByVal attributes As DicomModalityLutAttributes, _ 
   ByVal data() As Integer _ 
)  
public void setModalityLut(DicomModalityLutAttributes attributes, int[]data) 
public: 
void SetModalityLut(  
   DicomModalityLutAttributes^ attributes, 
   array<int>^ data 
)  

Parameters

attributes
The Modality LUT attributes to set.

data
Array of integers that holds the "LUT Data".

Remarks

This method will set the attributes of the "Modality LUT Module". If you are trying to set the "Rescale Intercept" (0028,1052) and "Rescale Slope" (0028,1053), set IsRescaleSlopeIntercept to true, and populate RescaleIntercept and RescaleSlope with the new values. You can also populate RescaleType if you want to set "Rescale Type" (0028,1054).

If you are trying to set the elements under "Modality LUT Sequence", set IsModalityLutSequence to true, and populate FirstStoredPixelValueMapped, NumberOfEntries, EntryBits, and LutType. In this case, [data](" id="dataparameterlink" class="popuplink.html) should hold the "LUT Data" (0028,3006).

Example

This example will set the modality LUT information inside a DICOM dataset.

C#
VB
using Leadtools; 
using Leadtools.Dicom; 
 
public void TestSetModalityLut() 
{ 
   string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm"); 
   //Make sure to initialize the DICOM engine, this needs to be done only once  
   //In the whole application 
   DicomEngine.Startup(); 
   using (DicomDataSet ds = new DicomDataSet()) 
   { 
      //Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None); 
      DicomModalityLutAttributes modalityLutAttributes = new DicomModalityLutAttributes(); 
      //No Modality LUT Sequence (0028,3000)  
      modalityLutAttributes.IsModalityLutSequence = false; 
      //Yes there is a rescale slope and intercept 
      modalityLutAttributes.IsRescaleSlopeIntercept = true; 
      modalityLutAttributes.RescaleIntercept = -128.0; 
      modalityLutAttributes.RescaleSlope = 1.0; 
      modalityLutAttributes.RescaleType = "UNSPECIFIED"; 
      // Delete the existing modality LUT,  
      // although we don't have to !  
      ds.DeleteModalityLut(); 
      //Set rescale slope and intercept 
      ds.SetModalityLut(modalityLutAttributes, null); 
      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "MLUT.dcm"), DicomDataSetSaveFlags.None); 
   } 
   DicomEngine.Shutdown(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Dicom 
 
Public Sub TestSetModalityLut() 
   Dim dicomFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm") 
   'Make sure to initialize the DICOM engine, this needs to be done only once  
   'In the whole application 
   DicomEngine.Startup() 
 
   Dim ds As DicomDataSet = New DicomDataSet() 
   Using (ds) 
      'Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None) 
      Dim modalityLutAttributes As DicomModalityLutAttributes = New DicomModalityLutAttributes() 
      'No Modality LUT Sequence (0028,3000)  
      modalityLutAttributes.IsModalityLutSequence = False 
      'Yes there is a rescale slope and intercept 
      modalityLutAttributes.IsRescaleSlopeIntercept = True 
      modalityLutAttributes.RescaleIntercept = -128.0 
      modalityLutAttributes.RescaleSlope = 1.0 
      modalityLutAttributes.RescaleType = "UNSPECIFIED" 
      ' Delete the existing modality LUT,  
      ' although we don't have to !  
      ds.DeleteModalityLut() 
      'Set rescale slope and intercept 
      ds.SetModalityLut(modalityLutAttributes, Nothing) 
      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "MLUT.dcm"), DicomDataSetSaveFlags.None) 
   End Using 
 
   DicomEngine.Shutdown() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Dicom; 
using Leadtools.Examples; 
 
public void TestSetModalityLut(Stream dicomStream, Stream outputStream) 
{ 
   //Make sure to initialize the DICOM engine, this needs to be done only once  
   //In the whole application 
   DicomEngine.Startup(); 
   using (DicomDataSet ds = new DicomDataSet()) 
   { 
      //Load DICOM File 
      ds.Load(dicomStream, DicomDataSetLoadFlags.None); 
      DicomModalityLutAttributes modalityLutAttributes = new DicomModalityLutAttributes(); 
      //No Modality LUT Sequence (0028,3000)  
      modalityLutAttributes.IsModalityLutSequence = false; 
      //Yes there is a rescale slope and intercept 
      modalityLutAttributes.IsRescaleSlopeIntercept = true; 
      modalityLutAttributes.RescaleIntercept = -128.0; 
      modalityLutAttributes.RescaleSlope = 1.0; 
      modalityLutAttributes.RescaleType = "UNSPECIFIED"; 
      // Delete the existing modality LUT,  
      // although we don't have to !  
      ds.DeleteModalityLut(); 
      //Set rescale slope and intercept 
      ds.SetModalityLut(modalityLutAttributes, null); 
      ds.Save(outputStream, DicomDataSetSaveFlags.None); 
   } 
   DicomEngine.Shutdown(); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Dicom 
 
Public Sub TestSetModalityLut(ByVal dicomStream As Stream, ByVal outputStream As Stream) 
   'Make sure to initialize the DICOM engine, this needs to be done only once  
   'In the whole application 
   DicomEngine.Startup() 
   Using ds As DicomDataSet = New DicomDataSet() 
      'Load DICOM File 
      ds.Load(dicomStream, DicomDataSetLoadFlags.None) 
      Dim modalityLutAttributes As DicomModalityLutAttributes = New DicomModalityLutAttributes() 
      'No Modality LUT Sequence (0028,3000)  
      modalityLutAttributes.IsModalityLutSequence = False 
      'Yes there is a rescale slope and intercept 
      modalityLutAttributes.IsRescaleSlopeIntercept = True 
      modalityLutAttributes.RescaleIntercept = -128.0 
      modalityLutAttributes.RescaleSlope = 1.0 
      modalityLutAttributes.RescaleType = "UNSPECIFIED" 
      ' Delete the existing modality LUT,  
      ' although we don't have to !  
      ds.DeleteModalityLut() 
      'Set rescale slope and intercept 
      ds.SetModalityLut(modalityLutAttributes, Nothing) 
      ds.Save(outputStream, DicomDataSetSaveFlags.None) 
   End Using 
   DicomEngine.Shutdown() 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom Assembly